With advances in hardware virtualization and computing along with availability of high capacity networks, cloud computing is emerging as the future of computing technology. Cloud computing provides access to third party software and services on web and generally has a pay as per usage basis system. End users access the cloud applications using appropriate application programming interfaces.
There are several vendors providing cloud platforms. Even though cloud computing provides end users with a lot of advantages, the lack of interoperability between different cloud vendors restricts end users from using services of other cloud vendors. Each vendor, currently in the fray, have their own formats and data model for the application deployment and management in cloud, leading to vendor locking and prohibits user from using cloud services of other vendors. Also due to lack of standardization in cloud computing, each vendor cloud operates and stores applications and data in different manner. The technology used in each vendor cloud platform is also different. Users find it difficult to process/migrate/share applications between two clouds. Although migration tools are available for migrating virtual machines from one hypervisor or cloud to a destination hypervisor or cloud, complex multi-tier applications may not migrate completely as completely different formats may be used in the destination hypervisor or cloud and applications may be running on multiple virtual machine with different properties and configurations.